package com.student.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class DBHelper {
    private static String Driver;
    private static String URL;
    private static String USER_NAME;
    private static String PSD;

    static {
        try {
            loadDatabase();
            Class.forName(Driver);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    /**
     * 加载配置文件中的参数
     */
    public static void loadDatabase(){
        //1.创建一个properties的对象，用于存储从文件中读取到的内容
        Properties ps=new Properties();
        //2.声明文件的路径
        String str="database.properties";
        //3.获取到一个输入字节流，这个流里面加载了文件的内容
        //通过当前类的类加载器去加载文件的内容，并且读取到流中，以InputStream流的方式返回
        InputStream is= DBHelper.class.getClassLoader().getResourceAsStream(str);
        //4.ps对象有一个load方法，可以将is的内容读取到ps中来
        try {
            ps.load(is);//将流中的内容加载到ps中
        } catch (IOException exception) {
            exception.printStackTrace();
        }
        //5.从ps中根据键获取到对应的值
        Driver=ps.getProperty("Driver");
        URL=ps.getProperty("URL");
        USER_NAME=ps.getProperty("USER_NAME");
        PSD=ps.getProperty("PSD");
    }

    //获取连接
    public static Connection getCon(){
        Connection conn=null;
        try {
            conn= DriverManager.getConnection(URL,USER_NAME,PSD);
        }catch (Exception e){
            e.printStackTrace();
        }
        return conn;
    }

    //断开连接
    public static void close(ResultSet rs, PreparedStatement ps, Connection conn){
        try {
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
            if (conn != null) {
                conn.close();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }

}
